From: Jasper St. Pierre Date: Wed, 13 Mar 2013 20:15:28 +0000 (-0400) Subject: messageTray: Move the notification actor out of the tray X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4332 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8c32102e994d0f81c82483124a99e72bf9793d81;p=gnome-shell.git messageTray: Move the notification actor out of the tray Putting the notification actor in the tray actor has caused a lot of various bugs and glitches over the years related to syncing the two, fizzling out events, and so on. It's a much simpler model if we consider the notification actor and tray to be separate widgets. As a side effect, this makes the context menu not pop up when we right-click on notifications. https://bugzilla.gnome.org/show_bug.cgi?id=695800 --- diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 543389435..49c8037ab 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1573,7 +1573,6 @@ const MessageTray = new Lang.Class({ layout_manager: new Clutter.BinLayout() }); this._notificationWidget.connect('key-release-event', Lang.bind(this, this._onNotificationKeyRelease)); this._notificationWidget.connect('notify::hover', Lang.bind(this, this._onNotificationHoverChanged)); - this.actor.add_actor(this._notificationWidget); this._notificationBin = new St.Bin({ y_expand: true }); this._notificationBin.set_y_align(Clutter.ActorAlign.START); @@ -1628,6 +1627,7 @@ const MessageTray = new Lang.Class({ { keybindingMode: Shell.KeyBindingMode.MESSAGE_TRAY }); this._grabHelper.addActor(this._summaryBoxPointer.actor); this._grabHelper.addActor(this.actor); + this._grabHelper.addActor(this._notificationWidget); Main.layoutManager.connect('keyboard-visible-changed', Lang.bind(this, this._onKeyboardVisibleChanged)); @@ -1669,6 +1669,7 @@ const MessageTray = new Lang.Class({ }); Main.layoutManager.trayBox.add_actor(this.actor); + Main.layoutManager.trayBox.add_actor(this._notificationWidget); Main.layoutManager.trackChrome(this.actor); Main.layoutManager.trackChrome(this._notificationWidget); Main.layoutManager.trackChrome(this._closeButton);